package com.pudding.ragdemo;

import dev.langchain4j.data.document.Document;
import dev.langchain4j.data.document.DocumentSplitter;
import dev.langchain4j.data.segment.TextSegment;

import java.util.ArrayList;
import java.util.List;

public class MyDocumentSplitter implements DocumentSplitter {

    // 使用正则表达式来匹配多个换行符，两个换行符拆分一个条目
    public static final String SPLIT_EXP = "\\s*\\R\\s*\\R\\s*";

    @Override
    public List<TextSegment> split(Document document) {
        // 创建一个空的条目列表
        List<TextSegment> segments = new ArrayList<>();
        // 获取文档内容
        String[] parts = document.text().split(SPLIT_EXP);
        for (String part : parts) {
            segments.add(TextSegment.from(part));
        }
        return segments;
    }
}
